home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / etc / apparmor / functions next >
Text File  |  2009-10-17  |  2KB  |  79 lines

  1. #!/bin/sh
  2. # ----------------------------------------------------------------------
  3. #    Copyright (c) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
  4. #     NOVELL (All rights reserved)
  5. #    Copyright (c) 2008, 2009 Canonical, Ltd.
  6. #
  7. #    This program is free software; you can redistribute it and/or
  8. #    modify it under the terms of version 2 of the GNU General Public
  9. #    License published by the Free Software Foundation.
  10. #
  11. #    This program is distributed in the hope that it will be useful,
  12. #    but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. #    GNU General Public License for more details.
  15. #
  16. #    You should have received a copy of the GNU General Public License
  17. #    along with this program; if not, contact Novell, Inc.
  18. # ----------------------------------------------------------------------
  19. # Authors:
  20. #  Kees Cook <kees@ubuntu.com>
  21. #
  22. # /etc/apparmor/functions
  23. #
  24. # Note: this is expected to work in the initramfs and without /usr mounted.
  25.  
  26. PROFILES="/etc/apparmor.d"
  27. PARSER="/sbin/apparmor_parser"
  28. SECURITYFS="/sys/kernel/security"
  29. export AA_SFS="$SECURITYFS/apparmor"
  30.  
  31. # Suppress warnings when booting in quiet mode
  32. quiet_arg=""
  33. [ "${QUIET:-no}" = yes ] && quiet_arg="-q"
  34. [ "${quiet:-n}" = y ] && quiet_arg="-q"
  35.  
  36. foreach_configured_profile() {
  37.     ls -1 "$PROFILES" | egrep -v '(\.dpkg-(new|old|dist)|~)$' | \
  38.     while read profile; do
  39.         if [ -f "$PROFILES"/"$profile" ]; then
  40.             "$PARSER" "$@" -- "$PROFILES"/"$profile"
  41.         fi
  42.     done
  43. }
  44.  
  45. load_configured_profiles() {
  46.     clear_cache_if_outdated
  47.     foreach_configured_profile $quiet_arg --write-cache --replace
  48. }
  49.  
  50. load_configured_profiles_without_caching() {
  51.     foreach_configured_profile $quiet_arg --replace
  52. }
  53.  
  54. configured_profile_names() {
  55.     foreach_configured_profile $quiet_arg -N 2>/dev/null | sort | grep -v '\^'
  56. }
  57.  
  58. running_profile_names() {
  59.     cat "$AA_SFS"/profiles | sed -e "s/ (\(enforce\|complain\))$//" | sort
  60. }
  61.  
  62. unload_profile() {
  63.     echo -n "$1" > "$AA_SFS"/.remove
  64. }
  65.  
  66. clear_cache() {
  67.     find "$PROFILES"/cache -maxdepth 1 -type f -print0 | xargs -0 rm -f --
  68. }
  69.  
  70. clear_cache_if_outdated() {
  71.     if [ -r "$PROFILES"/cache/.features ]; then
  72.         read CACHE_FEATURES < "$PROFILES"/cache/.features
  73.         read KERN_FEATURES < "$AA_SFS"/features
  74.         if [ "$KERN_FEATURES" != "$CACHE_FEATURES" ]; then
  75.             clear_cache
  76.         fi
  77.     fi
  78. }
  79.